package com.itic.appbase.applications.sys.code.persistence.dao;

import java.util.List;
import java.util.Map;

import com.itic.appbase.applications.sys.code.persistence.basedao.CodeDetailMapper;
import com.itic.appbase.applications.sys.code.persistence.model.CodeDetail;
import com.itic.appbase.applications.sys.code.persistence.model.CodeDetailExample;
import com.itic.appbase.framework.common.annotation.IticDBDao;
import com.itic.appbase.framework.common.persistence.dao.CrudDao;

@IticDBDao
public interface CodeDetailDao
        extends CodeDetailMapper, CrudDao<CodeDetail, CodeDetailExample> {
    /**
     * 根据id查询级联代码表信息
     * 
     * @param map
     *            </br>key1:dbTrue idEffective 是否可用
     *            </br>key2:parentId 父节点id
     * @return List<CodeDetail>
     */
    public List<CodeDetail> selectCodeDetail(Map<String, Object> map);
    /**
     * 根据id查询级联代码表信息（mysql）
     * 
     * @param map
     *            </br>key1:dbTrue idEffective 是否可用
     *            </br>key2:parentId 父节点id
     * @return List<CodeDetail>
     */
    public List<CodeDetail> selectMysqlCodeDetail(Map<String, Object> map);

    /**
     * 删除代码详情表中的代码信息
     * 
     * @param map
     *            </br>key1:dbFalse idEffective 0 不可用
     *            </br>key2:dbTrue idEffective 1 可用
     *            </br>key3:idList 父节点id集合
     *            </br>key4:updateTime 修改时间
     * @return
     */
    public int deleteCodeDetail(Map<String, Object> map);
}